/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.going.logica;

import co.com.going.modelo.Administrador;
import co.com.going.persistencia.IDAOadministrador;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Olguita
 */
@Stateless
public class AdministradorLogica implements IAdministradorLogica {

    @EJB
    private IDAOadministrador iDAOadministrador;
    
    @Override
    public void crearAdmin(Administrador administrador) throws Exception {
        
        if(administrador==null){
        
            throw new Exception("El Adminisrador no tiene Informacion");
        
        }
        
        Administrador objAdmin= iDAOadministrador.buscarAdminPorID(administrador.getIdAdmin());
        
        if(objAdmin!=null){
        
        
            throw new Exception("El Administrador ya Existe");
        
        }
        
         
        
        if(administrador.getNombre()==null||administrador.getNombre().equals("")){
            
            throw new Exception("El Nombre no puede ser Vacio");
            
        }
        
         if(administrador.getApellidos()==null||administrador.getApellidos().equals("")){
            
            throw new Exception("El Apellido no puede ser Vacio");
            
        }
         
         if(administrador.getContrasena()==null||administrador.getContrasena().equals("")){
            
            throw new Exception("La Contraseña No Puede Ser Vacia");
            
        }
         
         if(administrador.getIdAdmin()==null||administrador.getIdAdmin()==0){
            
            throw new Exception("El Id del Administrador Nos Puede Ser Vacio");
            
        }
        
         iDAOadministrador.crearAdmin(administrador);
         
    }

    @Override
    public void eliminarAdmin(Administrador administrador) throws Exception {
        
        if(administrador==null){
        
            throw new Exception("El Adminisrador no tiene Informacion");
        
        }
        
        Administrador objAdmin= iDAOadministrador.buscarAdminPorID(administrador.getIdAdmin());
        
        if(objAdmin==null){
        
            throw new Exception("El Administrador No Existe");
        
        }
        
        iDAOadministrador.eliminarAdmin(administrador);
        
    }

    @Override
    public void modificarAdmin(Administrador administrador) throws Exception {
        
        if(administrador==null){
        
            throw new Exception("El Adminisrador no tiene Informacion");
        
        }
        
        Administrador objAdmin= iDAOadministrador.buscarAdminPorID(administrador.getIdAdmin());
        
        if(objAdmin==null){
        
            throw new Exception("El Administrador No Existe");
        
        }
        
        if(administrador.getNombre()==null||administrador.getNombre().equals("")){
            
            throw new Exception("El Nombre no puede ser Vacio");
            
        }
        
         if(administrador.getApellidos()==null||administrador.getApellidos().equals("")){
            
            throw new Exception("El Apellido no puede ser Vacio");
            
        }
         
         if(administrador.getContrasena()==null||administrador.getContrasena().equals("")){
            
            throw new Exception("La Contraseña No Puede Ser Vacia");
            
        }
         
         if(administrador.getIdAdmin()==null||administrador.getIdAdmin()==0){
            
            throw new Exception("El Id del Administrador Nos Puede Ser Vacio");
            
        }
         
        iDAOadministrador.modificarAdmin(administrador);
        
    }

    @Override
    public Administrador buscarAdminPorID(Long IdAdmin) throws Exception {
        
        if(IdAdmin==null||IdAdmin==0) {
           
           throw new Exception("Ingrese el ID del Administrador para realizar la busqueda");
           
       }
       
       return iDAOadministrador.buscarAdminPorID(IdAdmin);
        
    }

    @Override
    public List<Administrador> Administradores() throws Exception {
        
        return iDAOadministrador.Administradores();
        
    }

   
    
    
}
